package com.xbongbong.pro.rabbitmq.binders;

import com.xbongbong.pro.rabbitmq.constant.ConsistencySyncBinderConstant;
import org.springframework.cloud.stream.annotation.Input;
import org.springframework.messaging.SubscribableChannel;
import org.springframework.stereotype.Service;

/**
 *
 * @author 魏荣杰
 * @date 2019/6/10 19:44
 * @since v1.0
 * @version v1.0
 */
@Service("consistencySyncConsumerBinder")
public interface ConsistencySyncConsumerBinder {
    /**
     * 客户
     */
    @Input(ConsistencySyncBinderConstant.SYNC_CUSTOMER_INPUT)
    SubscribableChannel syncCustomerInput();
//    @Output(ConsistencySyncBinderConstant.SYNC_CUSTOMER_OUTPUT)
//    MessageChannel syncCustomerOutput();
    /**
     * 联系人
     */
    @Input(ConsistencySyncBinderConstant.SYNC_CONTACT_INPUT)
    SubscribableChannel syncContactInput();
//    @Output(ConsistencySyncBinderConstant.SYNC_CONTACT_OUTPUT)
//    MessageChannel syncContactOutput();
    /**
     * 合同
     */
    @Input(ConsistencySyncBinderConstant.SYNC_CONTRACT_INPUT)
    SubscribableChannel syncContractInput();
//    @Output(ConsistencySyncBinderConstant.SYNC_CONTRACT_OUTPUT)
//    MessageChannel syncContractOutput();
    /**
     * 机会
     */
    @Input(ConsistencySyncBinderConstant.SYNC_OPPORTUNITY_INPUT)
    SubscribableChannel syncOpportunityInput();
//    @Output(ConsistencySyncBinderConstant.SYNC_OPPORTUNITY_OUTPUT)
//    MessageChannel syncOpportunityOutput();
    /**
     * 产品
     */
    @Input(ConsistencySyncBinderConstant.SYNC_PRODUCT_INPUT)
    SubscribableChannel syncProductInput();
//    @Output(ConsistencySyncBinderConstant.SYNC_PRODUCT_OUTPUT)
//    MessageChannel syncProductOutput();
    /**
     * 用户
     */
    @Input(ConsistencySyncBinderConstant.SYNC_USER_INPUT)
    SubscribableChannel syncUserInput();
//    @Output(ConsistencySyncBinderConstant.SYNC_USER_OUTPUT)
//    MessageChannel syncUserOutput();

    /**
     * 用户
     */
    @Input(ConsistencySyncBinderConstant.SYNC_SUPPLIER_INPUT)
    SubscribableChannel syncSupplierInput();
//    @Output(ConsistencySyncBinderConstant.SYNC_USER_OUTPUT)
//    MessageChannel syncUserOutput();

    /**
     * 仓库
     */
    @Input(ConsistencySyncBinderConstant.SYNC_WAREHOUSE_INPUT)
    SubscribableChannel syncWarehousInput();

    @Input(ConsistencySyncBinderConstant.SYNC_QUOTATION_INPUT)
    SubscribableChannel syncQuotationInput();

    /**
     * 采购合同
     * @return
     */
    @Input(ConsistencySyncBinderConstant.SYNC_PURCHASE_INPUT)
    SubscribableChannel syncPurchaseInput();

    /**
     * 批次流水
     * @return
     */
    @Input(ConsistencySyncBinderConstant.SYNC_BATCH_FLOW_BILL_INPUT)
    SubscribableChannel syncBatchFlowBill();

    /**
     * 序列号查询
     * @return
     */
    @Input(ConsistencySyncBinderConstant.SYNC_SEQ_SEARCH_INPUT)
    SubscribableChannel syncSeqSearch();

    /**
     * 应收款
     * @return
     */
    @Input(ConsistencySyncBinderConstant.SYNC_PAYMENT_INPUT)
    SubscribableChannel syncPaymentInput();

    /**
     * 付款计划
     * @return
     */
    @Input(ConsistencySyncBinderConstant.SYNC_PAYPLAN_INPUT)
    SubscribableChannel syncPayPlanInput();

    /**
     * 线索
     */
    @Input(ConsistencySyncBinderConstant.SYNC_CLUE_INPUT)
    SubscribableChannel syncClueInput();
    /**
     * 市场活动
     */
    @Input(ConsistencySyncBinderConstant.SYNC_MARKET_ACTIVITY_INPUT)
    SubscribableChannel syncMarketActivityInput();

    /**
     * 竞争对手
     */
    @Input(ConsistencySyncBinderConstant.SYNC_COMPETITOR_INPUT)
    SubscribableChannel syncCompetitorInput();
    /**
     * 销项发票
     */
    @Input(ConsistencySyncBinderConstant.SYNC_INVOICE_INPUT)
    SubscribableChannel syncInvoiceInput();

    /**
     * 销项发票
     */
    @Input(ConsistencySyncBinderConstant.SYNC_CONTRACT_OUTSTOCK_INPUT)
    SubscribableChannel syncContractOutStockInput();

}
